package net.pocketmagic.android.openmxplayerdemo; import net.pocketmagic.android.openmxplayer.OpenMXPlayer; import net.pocketmagic.android.openmxplayer.PlayerEvents; import android.app.Activity; import android.app.AlertDialog; import android.app.Fragment; import android.content.Context; import android.content.res.AssetFileDescriptor; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.Button; import android.widget.EditText; import android.widget.SeekBar; import android.widget.SeekBar.OnSeekBarChangeListener; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity { final static public String LOG_TAG = "OpenMXPlayerDemo"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if (savedInstanceState == null) { getFragmentManager().beginTransaction() .add(R.id.container, new PlaceholderFragment()).commit(); } } /** * A placeholder fragment containing a simple view. */ public static class PlaceholderFragment extends Fragment implements OnClickListener { SeekBar seekbar; EditText et; TextView tv; PlayerEvents events = new PlayerEvents() { @Override public void onStop() { seekbar.setProgress(0); tv.setText("Playback Stopped."); } @Override public void onStart(String mime, int sampleRate, int channels, long duration) { Log.d(LOG_TAG , "onStart called: " + mime + " sampleRate:" + sampleRate + " channels:"+ channels); if (duration == 0) Toast.makeText(getActivity(), "This is a LIVE Stream!", Toast.LENGTH_SHORT).show(); else Toast.makeText(getActivity(), "This is a RECORDING!", Toast.LENGTH_SHORT).show(); tv.setText("Playing content:" + mime + " " + sampleRate + "Hz " + (duration/1000000) + "sec"); } @Override public void onPlayUpdate(int percent, long currentms, long totalms) { seekbar.setProgress(percent); } @Override public void onPlay() { } @Override public void onError() { seekbar.setProgress(0); Toast.makeText(getActivity(), "Error!", Toast.LENGTH_SHORT).show(); tv.setText("An error has been encountered"); } }; OpenMXPlayer p = new OpenMXPlayer(events); public PlaceholderFragment() { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_main, container,false); // set listeners on buttons ((Button)rootView.findViewById(R.id.idbut1)).setOnClickListener((OnClickListener) this); ((Button)rootView.findViewById(R.id.idbut2a)).setOnClickListener((OnClickListener) this); ((Button)rootView.findViewById(R.id.idbut2b)).setOnClickListener((OnClickListener) this); ((Button)rootView.findViewById(R.id.idbut2c)).setOnClickListener((OnClickListener) this); ((Button)rootView.findViewById(R.id.idbut3)).setOnClickListener((OnClickListener) this); ((Button)rootView.findViewById(R.id.idbut4)).setOnClickListener((OnClickListener) this); ((Button)rootView.findViewById(R.id.idbut5)).setOnClickListener((OnClickListener) this); ((Button)rootView.findViewById(R.id.idbut6)).setOnClickListener((OnClickListener) this); seekbar = (SeekBar)rootView.findViewById(R.id.seekbar); seekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { @Override public void onStopTrackingTouch(SeekBar seekBar) {} @Override public void onStartTrackingTouch(SeekBar seekBar) {} @Override public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) { if (fromUser) p.seek(progress); } }); et = (EditText)rootView.findViewById(R.id.idet1); tv = (TextView)rootView.findViewById(R.id.idtv1); return rootView; } @Override public void onClick(View v) { int id = v.getId(); switch (id) { case R.id.idbut1: showDialog(getActivity(), "codecs", OpenMXPlayer.listCodecs()); break; case R.id.idbut2a:{ Log.d(LOG_TAG, "Load an audio file from resources."); p.setDataSource(getActivity(), R.raw.samplemp3); Toast.makeText(getActivity(), "Now press play!", Toast.LENGTH_SHORT).show(); } break; case R.id.idbut2b:{ Log.d(LOG_TAG, "Load an audio file from resources."); p.setDataSource(getActivity(), R.raw.sampleaac); Toast.makeText(getActivity(), "Now press play!", Toast.LENGTH_SHORT).show(); } break; case R.id.idbut2c: { Log.d(LOG_TAG, "Load an audio file from resources."); p.setDataSource(getActivity(), R.raw.samplewma); Toast.makeText(getActivity(), "Now press play!", Toast.LENGTH_SHORT).show(); } break; case R.id.idbut3: Log.d(LOG_TAG, "Load an audio file from given location."); p.setDataSource(et.getText().toString()); Toast.makeText(getActivity(), "Now press play for " + et.getText().toString(), Toast.LENGTH_LONG).show(); break; case R.id.idbut4: Log.d(LOG_TAG, "Start playing!"); p.play(); break; case R.id.idbut5: Log.d(LOG_TAG, "Pause."); p.pause(); break; case R.id.idbut6: Log.d(LOG_TAG, "Stop."); p.stop(); break; } } } private static void showDialog(Context context, String title, String msg) { new AlertDialog.Builder(context) .setTitle(title) .setMessage(msg) .setIcon(R.drawable.ic_launcher) .show(); } }